package com.micro.ai.files.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.micro.ai.files.entity.FileShare;

import java.util.List;

/**
 * 文件分享服务接口
 * 
 * @author micro-ai
 * @since 0.0.1
 */
public interface FileShareService extends IService<FileShare> {

    /**
     * 创建文件分享
     */
    FileShare create(FileShare share);

    /**
     * 更新文件分享
     */
    FileShare update(String id, FileShare share);

    /**
     * 删除文件分享（取消分享）
     */
    void delete(String id);

    /**
     * 根据分享令牌获取分享信息
     */
    FileShare getByShareToken(String shareToken);

    /**
     * 验证分享密码
     */
    boolean validateSharePassword(String shareToken, String password);

    /**
     * 增加下载次数
     */
    void incrementDownloadCount(String id);

    /**
     * 增加预览次数
     */
    void incrementViewCount(String id);

    /**
     * 分页查询分享列表
     */
    Page<FileShare> pageQuery(int pageNum, int pageSize, String tenantId, 
                              String fileId, String createdBy);

    /**
     * 查询文件的分享列表
     */
    List<FileShare> listByFileId(String fileId);

    /**
     * 查询用户的分享列表
     */
    List<FileShare> listByCreatedBy(String tenantId, String createdBy);
}

